﻿Imports Heren.Common.Forms.Editor
Imports Heren.Common.Forms
Imports Heren.Common.ScriptEngine.Script
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports Heren.Common.Forms.Runtime
Imports System.Text
Imports Heren.Common.Libraries
Public Class 管道滑脱事件分析表 : Inherits AbstractRuntimeHandler
    ''****************************************************************
    '' 这是护理电子病历表单后台运行支持脚本
    '' 注意：这是Visual Basic脚本，您可以不区分大小写 
    '' 请不要修改系统提供的方法名，以及方法名前面的Overrides关键字
    '' Script Language : Visual Basic
    '' Author : YangMingkun, Date : 2012-3-18
    '' Copyright (C) Heren Health Services (SUPCON) Co.,Ltd.
    ''****************************************************************


    '表单脚本初始化
    Public Overrides Sub Initialize()
        'Me.ShowMessage("表单已完成加载!")
        '在此函数中来查询和设置表单中的相关数据
        '可以调用GetSystemContext函数获取系统中已有数据，也可以从数据库中读取其他任意数据

    End Sub


    '获取关键数据列表
    Public Overrides Function GetKeyDataList() As List(Of KeyData)
        Dim keyDataList As New List(Of KeyData)
        '科室
        keyDataList.Add(New KeyData("科室", Me.GetControlText("XTextBox19")))
        '床号
        keyDataList.Add(New KeyData("床号", Me.GetControlText("XTextBox18")))
        '住院号
        keyDataList.Add(New KeyData("住院号", Me.GetControlText("XTextBox2")))
        '姓名
        keyDataList.Add(New KeyData("姓名", Me.GetControlText("XTextBox17")))
        '性别
        keyDataList.Add(New KeyData("性别", Me.GetControlText("XTextBox3")))
        '年龄
        keyDataList.Add(New KeyData("年龄", Me.GetControlText("XTextBox4")))
        '入院时间
        keyDataList.Add(New KeyData("入院时间", Me.GetControlText("XTextBox20")))
        '诊断
        keyDataList.Add(New KeyData("诊断", Me.GetControlText("XTextBox9")))
        '学历
        keyDataList.Add(New KeyData("学历", Me.GetControlText("XComboBox1")))
        '导管类型
        Dim sz导管类型 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox1") Then
            sz导管类型.AppendFormat("{0} {1}", sz导管类型.ToString(), "胃管")
        ElseIf IsCheckButtonChecked("XCheckBox2") Then
            sz导管类型.AppendFormat("{0} {1}", sz导管类型.ToString(), "尿管")
        ElseIf IsCheckButtonChecked("XCheckBox3") Then
            sz导管类型.AppendFormat("{0} {1}", sz导管类型.ToString(), "引流管")
        ElseIf IsCheckButtonChecked("XCheckBox4") Then
            sz导管类型.AppendFormat("{0} {1}", sz导管类型.ToString(), "PICC")
        ElseIf IsCheckButtonChecked("XCheckBox5") Then
            sz导管类型.AppendFormat("{0} {1}", sz导管类型.ToString(), "胸管")
        ElseIf IsCheckButtonChecked("XCheckBox6") Then
            sz导管类型.AppendFormat("{0} {1}", sz导管类型.ToString(), "透析管路")
        ElseIf IsCheckButtonChecked("XCheckBox7") Then
            sz导管类型.AppendFormat("{0} {1}", sz导管类型.ToString(), "气管插管")
        ElseIf IsCheckButtonChecked("XCheckBox8") Then
            sz导管类型.AppendFormat("{0} 其他 {1}", sz导管类型.ToString(), Me.GetControlText("XTextBox1"))
        End If
        keyDataList.Add(New KeyData("导管类型", sz导管类型.ToString()))
        '发生日期
        keyDataList.Add(New KeyData("发生日期", Me.GetControlText("XDateTime1")))
        '置管日期
        keyDataList.Add(New KeyData("置管日期", Me.GetControlText("XDateTime2")))
        '手术日期
        keyDataList.Add(New KeyData("手术日期", Me.GetControlText("XDateTime3")))
        '患者身体状况
        '护理级别
        Dim sz护理级别 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox9") Then
            sz护理级别.AppendFormat("{0} {1}", sz护理级别.ToString(), "特级护理")
        End If
        If IsCheckButtonChecked("XCheckBox10") Then
            sz护理级别.AppendFormat("{0} {1}", sz护理级别.ToString(), "一级护理")
        End If
        If IsCheckButtonChecked("XCheckBox11") Then
            sz护理级别.AppendFormat("{0} {1}", sz护理级别.ToString(), "二级护理")
        End If
        If IsCheckButtonChecked("XCheckBox12") Then
            sz护理级别.AppendFormat("{0} {1}", sz护理级别.ToString(), "三级护理")
        End If
        keyDataList.Add(New KeyData("护理级别", sz护理级别.ToString()))
        '意识状态
        Dim sz意识状态 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox13") Then
            sz意识状态.AppendFormat("{0} {1}", sz意识状态.ToString(), "清醒")
        End If
        If IsCheckButtonChecked("XCheckBox14") Then
            sz意识状态.AppendFormat("{0} {1}", sz意识状态.ToString(), "嗜睡")
        End If
        If IsCheckButtonChecked("XCheckBox15") Then
            sz意识状态.AppendFormat("{0} {1}", sz意识状态.ToString(), "朦胧")
        End If
        If IsCheckButtonChecked("XCheckBox16") Then
            sz意识状态.AppendFormat("{0} {1}", sz意识状态.ToString(), "躁动")
        End If
        If IsCheckButtonChecked("XCheckBox17") Then
            sz意识状态.AppendFormat("{0} {1}", sz意识状态.ToString(), "昏迷")
        End If
        keyDataList.Add(New KeyData("意识状态", sz意识状态.ToString()))
        '精神状态
        Dim sz精神状态 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox18") Then
            sz精神状态.AppendFormat("{0} {1}", sz精神状态.ToString(), "平静")
        End If
        If IsCheckButtonChecked("XCheckBox19") Then
            sz精神状态.AppendFormat("{0} {1}", sz精神状态.ToString(), "烦躁")
        End If
        If IsCheckButtonChecked("XCheckBox20") Then
            sz精神状态.AppendFormat("{0} {1}", sz精神状态.ToString(), "焦虑")
        End If
        If IsCheckButtonChecked("XCheckBox21") Then
            sz精神状态.AppendFormat("{0} {1}", sz精神状态.ToString(), "恐惧")
        End If
        If IsCheckButtonChecked("XCheckBox22") Then
            sz精神状态.AppendFormat("{0} 其他{1}", sz精神状态.ToString(), Me.GetControlText("XTextBox5"))
        End If
        keyDataList.Add(New KeyData("精神状态", sz精神状态.ToString()))
        '活动能力
        Dim sz活动能力 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox23") Then
            sz活动能力.AppendFormat("{0} {1}", sz活动能力.ToString(), "行动正常")
        End If
        If IsCheckButtonChecked("XCheckBox24") Then
            sz活动能力.AppendFormat("{0} {1}", sz活动能力.ToString(), "使用助听器")
        End If
        If IsCheckButtonChecked("XCheckBox25") Then
            sz活动能力.AppendFormat("{0} {1}", sz活动能力.ToString(), "残肢")
        End If
        If IsCheckButtonChecked("XCheckBox26") Then
            sz活动能力.AppendFormat("{0} {1}", sz活动能力.ToString(), "无法行动")
        End If
        If IsCheckButtonChecked("XCheckBox27") Then
            sz活动能力.AppendFormat("{0} 其他{1}", sz活动能力.ToString(), Me.GetControlText("XTextBox6"))
        End If
        keyDataList.Add(New KeyData("活动能力", sz活动能力.ToString()))
        '脱管原因
        Dim sz脱管原因 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox31") Then
            sz脱管原因.AppendFormat("{0} {1}", sz脱管原因.ToString(), "患者自拔")
        End If
        If IsCheckButtonChecked("XCheckBox32") Then
            sz脱管原因.AppendFormat("{0} {1}", sz脱管原因.ToString(), "与操作无关的脱落")
        End If
        If IsCheckButtonChecked("XCheckBox33") Then
            sz脱管原因.AppendFormat("{0} {1}", sz脱管原因.ToString(), "医护人员操作时脱落")
        End If
        If IsCheckButtonChecked("XCheckBox34") Then
            sz脱管原因.AppendFormat("{0} {1}", sz脱管原因.ToString(), "家属协助患者时脱落")
        End If
        keyDataList.Add(New KeyData("脱管原因", sz脱管原因.ToString()))
        '固定方法
        Dim sz固定方法 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox35") Then
            sz固定方法.AppendFormat("{0} {1}", sz固定方法.ToString(), "缝合")
        End If
        If IsCheckButtonChecked("XCheckBox36") Then
            sz固定方法.AppendFormat("{0} {1}", sz固定方法.ToString(), "胶布固定")
        End If
        If IsCheckButtonChecked("XCheckBox37") Then
            sz固定方法.AppendFormat("{0} 其他{1}", sz固定方法.ToString(), Me.GetControlText("XTextBox7"))
        End If
        keyDataList.Add(New KeyData("固定方法", sz固定方法.ToString()))
        '相关因素
        '健康宣教
        Dim sz健康宣教 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox38") Then
            sz健康宣教.AppendFormat("{0} {1}", sz健康宣教.ToString(), "已做")
        End If
        If IsCheckButtonChecked("XCheckBox39") Then
            sz健康宣教.AppendFormat("{0} {1}", sz健康宣教.ToString(), "未做")
        End If
        keyDataList.Add(New KeyData("健康宣教", sz健康宣教.ToString()))
        '约束带使用
        Dim sz约束带使用 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox40") Then
            sz约束带使用.AppendFormat("{0} {1}", sz约束带使用.ToString(), "有")
        End If
        If IsCheckButtonChecked("XCheckBox41") Then
            sz约束带使用.AppendFormat("{0} {1}", sz约束带使用.ToString(), "无")
        End If
        '管路滑脱时工作人员
        Dim sz管路滑脱时工作人员 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox42") Then
            sz管路滑脱时工作人员.AppendFormat("{0} {1}", sz管路滑脱时工作人员.ToString(), "在患者身边")
        End If
        If IsCheckButtonChecked("XCheckBox43") Then
            sz管路滑脱时工作人员.AppendFormat("{0} {1}", sz管路滑脱时工作人员.ToString(), "未在患者身边")
        End If
        If Me.GetControlText("XTextBox8") <> "" Then
            sz管路滑脱时工作人员.AppendFormat("{0} 其他：{1}", sz管路滑脱时工作人员.ToString(), Me.GetControlText("XTextBox8"))
        End If
        keyDataList.Add(New KeyData("管路滑脱时工作人员", sz管路滑脱时工作人员.ToString()))
        '处理
        Dim sz处理 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox42") Then
            sz处理.AppendFormat("{0} {1}", sz处理.ToString(), "立即通知医生")
        End If
        If IsCheckButtonChecked("XCheckBox43") Then
            sz处理.AppendFormat("{0} {1}", sz处理.ToString(), "重新置管")
        End If
        If IsCheckButtonChecked("XCheckBox46") Then
            sz处理.AppendFormat("{0} {1}", sz处理.ToString(), "观察病情")
        End If
        If IsCheckButtonChecked("XCheckBox47") Then
            sz处理.AppendFormat("{0} {1}", sz处理.ToString(), "脱落部位处理")
        End If
        If IsCheckButtonChecked("XCheckBox48") Then
            sz处理.AppendFormat("{0} {1}", sz处理.ToString(), "记录病情")
        End If
        If IsCheckButtonChecked("XCheckBox49") Then
            sz处理.AppendFormat("{0} {1}({2})", sz处理.ToString(), "用药", Me.GetControlText("XTextBox11"))
        End If
        keyDataList.Add(New KeyData("处理", sz处理.ToString()))
        '并发症
        Dim sz并发症 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox51") Then
            sz并发症.AppendFormat("{0} {1} {2}ml", sz并发症.ToString(), "出血", Me.GetControlText("XTextBox12"))
        End If
        If IsCheckButtonChecked("XCheckBox52") Then
            sz并发症.AppendFormat("{0} {1}", sz并发症.ToString(), "气栓")
        End If
        If IsCheckButtonChecked("XCheckBox53") Then
            sz并发症.AppendFormat("{0} {1}", sz并发症.ToString(), "血栓")
        End If
        If IsCheckButtonChecked("XCheckBox54") Then
            sz并发症.AppendFormat("{0} {1}", sz并发症.ToString(), "窒息")
        End If
        If IsCheckButtonChecked("XCheckBox55") Then
            sz并发症.AppendFormat("{0} {1}", sz并发症.ToString(), "感染")
        End If
        If IsCheckButtonChecked("XCheckBox56") Then
            sz并发症.AppendFormat("{0} {1}", sz并发症.ToString(), "气胸")
        End If
        If IsCheckButtonChecked("XCheckBox57") Then
            sz并发症.AppendFormat("{0} {1}", sz并发症.ToString(), "吻合口瘘")
        End If
        If IsCheckButtonChecked("XCheckBox58") Then
            sz并发症.AppendFormat("{0} 其他 {1}", sz并发症.ToString(), Me.GetControlText("XTextBox13"))
        End If
        keyDataList.Add(New KeyData("并发症", sz并发症.ToString()))
        '填表人
        keyDataList.Add(New KeyData("填表人", Me.GetControlText("XTextBox14")))
        '护士长
        keyDataList.Add(New KeyData("护士长", Me.GetControlText("XTextBox15")))
        '填表日期
        keyDataList.Add(New KeyData("填表日期", Me.GetControlText("XDateTime4")))

        Return keyDataList
    End Function


    '更新表单中指定的数据
    Public Overrides Function UpdateFormData(ByVal param As String, ByVal data As Object) As Boolean
        Return True
    End Function


    '获取表单中指定的数据
    Public Overrides Function GetFormData(ByVal param As Object) As Object
        If param = "表单摘要" Then
            Return Me.GetFormSummary()
        End If
        Return Nothing
    End Function


    '获取表单摘要数据
    Public Function GetFormSummary() As String
        Dim control As Control = Me.FindControl("XTextBox1")
        If control IsNot Nothing Then
            Return control.Text
        End If
        Return String.Empty
    End Function

End Class
